# -*- coding: utf-8 -*-

'''
Created on 18/03/2009

@author: wesley
'''

from sqlobject import *
import datetime
from otica.db import connect
from kiwi.model import Model

class Cliente(SQLObject,Model):
    
    codigo = IntCol(default=0)
    nome = StringCol(length=100, default=None)
    data = DateCol()
    ultimacompra = DateCol()
    contato = DateCol()
    datanasc = DateCol()
    estadocivil = StringCol(length=100, default=None) 
    esposa = StringCol(length=100, default=None)
    rg = StringCol(length=11, default=None)
    cpf = StringCol(length=100, default=None)
    spc = StringCol(length=100, default=None)
    endereco = StringCol(length=100, default=None)
    bairro = StringCol(length=100, default=None)
    cidade =StringCol(length=100, default=None)
    cep = StringCol(length=100, default=None)
    estado = StringCol(length=100, default=None)
    telefone1 = StringCol(length=100, default=None) 
    telefone2 = StringCol(length=100, default=None)
    fax = StringCol(length=100, default=None)
    email = StringCol(length=100, default=None)
    pai = StringCol(length=100, default=None)
    mae = StringCol(length=100, default=None)
    codigotIndex = DatabaseIndex(codigo)

    
    @classmethod
    def novo(self, trans):
        d = datetime.date.today()
        cliente = Cliente(nome = '',
                          data = d,
                          ultimacompra = None,
                          contato = d,
                          datanasc = None,
                          estadocivil = 'Solteiro', 
                          esposa = '',
                          rg = '',
                          cpf = '',
                          spc = '',
                          endereco = '',
                          bairro = '',
                          cidade = '',
                          cep = '',
                          estado = '',
                          telefone1 = '', 
                          telefone2 = '',
                          fax = '',
                          email = '',
                          pai = '',
                          mae = '',
                          connection=trans)
        cliente.codigo = cliente.id
        return cliente

    def validar(self, trans, isNew):
        
        if not self.codigo:
            return ('codigo','Código é Obrigatório')
        
        cliente = Cliente.selectBy(codigo=self.codigo, connection=trans)
        if cliente.count() > 1:
            return ('codigo','Código já existente. Favor escolher outro')
    
    @classmethod
    def search(self, texto, arg,trans):
        
        result = Cliente.select("%s LIKE '%%%s%%'" % (arg,texto),connection=trans)
        return result
        
    @classmethod
    def searchOne(self, texto, arg,trans):
        result = self.search(texto, arg,trans)
        if result.count() > 0:
            return result[0] 
        
    

